// class User {
//     constructor(name, email) {
//         this.name = name; // 属性
//         this.email = email; // 属性
//     }
//     createProfile() {
//         console.log(`${this.name}已创建个⼈资料。`); // ⽅法
//     }
//     logOut() {
//         console.log(`${this.name}已登出。`); // ⽅法
//     }
//    }
// 创建 User 类的实例
// const user1 = new User("Alice", "alice@example.com");
// const user2 = new User("Bob", "bob@example.com");
// const user3 = new User("Charlie", "charlie@example.com");
// 调⽤实例的⽅法
// user1.createProfile(); // 输出: Alice已创建个⼈资料。
// user2.logOut(); // 输出: Bob已登出。
// user1.createProfile(); // 调⽤ user1 实例上的 createProfile ⽅法
// user2.logOut(); // 调⽤ user2 实例上的 logOut ⽅法

// class Circle {
//     #radius; // 使⽤新 `#` 语法的私有属性
//     constructor(radius) {
//      this.#radius = radius; // 封装属性
//     }
//     get area() {
//      return Math.PI * this.#radius * this.#radius;
//     }
//    }
// class User {
//     constructor(name) {
//     this.name = name;
//     }
//     sayHello() {
//     console.log(`你好，我叫${this.name}。`);
//     }
//    }
// class Admin extends User {
//     deleteUser(user) {
//     console.log(`${user.name}已被删除。`);
//     }
//    }
//    const admin = new Admin("Alice");
//    admin.sayHello(); // 输出：你好，我叫Alice。
//    admin.deleteUser({ name: "Bob" }); // 输出：Bob已被删除。

class User {
    sayHello() {
    console.log("你好，我是⽤户。");
    }
   }
class Admin extends User {
    sayHello() {
    console.log("你好，我是管理员。");
    }
   }
class Guest extends User {
    sayHello() {
    console.log("你好，我是访客。");
    }
   }
const user = new User();
const admin = new Admin();
const guest = new Guest();
user.sayHello(); // 输出：你好，我是⽤户
admin.sayHello(); // 输出：你好，我是管理员。
guest.sayHello(); // 输出：你好，我是访客。

// const rectangle = {
//     name: "矩形 1",
//     width: 10,
//     height: 20,
//    };
// console.log(rectangle.name); // 输出：矩形 1

// const rectangle = {
//     name: "矩形 1",
//     width: 10,
//     height: 20,
//     area: function () {
//      return this.width * this.height;
//     },
//    };
// console.log(rectangle.area()); // 输出：200
// rectangle.width = 15;
// console.log(rectangle.area()); // 输出：300

// console.log(this); // 输出：Window 对象
// function run() {
//  console.log(this); // 输出：Window 对象
// }
// run();

const rectangle = {
    name: "矩形 1",
    width: 10,
    height: 20,
    area: function () {
     return this.width * this.height;
    },
   };

   console.log(rectangle.area()); // 输出：200

const rectangle1 = {
    name: "矩形 1",
    width: 10,
    height: 20,
    area: function () {
    return this.width * this.height;
    },
   };
const rectangle2 = {
    name: "矩形 2",
    width: 30,
    height: 40,
    area: function () {
    return this.width * this.height;
    },
   };
console.log(rectangle1.area()); // 输出：200
console.log(rectangle2.area()); // 输出：1200
   